package com.jiangyifen.robot.service;

import java.io.IOException;
import java.util.Map;

import com.jiangyifen.robot.core.Robot;

public interface RobotService {
	
	/**
	 * 根据数据库里保存的机器人配置
	 * 初始化【指定的】机器人
	 * @param robotId
	 * @param scenarioId
	 */
	void startup(Long robotId,Long scenarioId) throws IOException;
	
	/**
	 * 根据数据库里保存的机器人配置
	 * 初始化【所有的】机器人
	 * @param scenarioId
	 * @return
	 */
	void startupAll(Long scenarioId);
	
	/**
	 * 关闭指定的机器人
	 * @param robotId
	 */
	void shutdown(Long robotId);
	
	/**
	 * 关闭所有的机器人
	 * @param robotId
	 */
	void shutdownAll();
	
	/**
	 * 获取所有机器人对象，key=robot.id
	 * @return
	 */
	Map<Long, Robot> getAllRobots();
	
	/**
	 * 根据id，获取内存中的robot对象
	 * 
	 * @param robotId
	 * @return robot or null
	 */
	Robot getRobot(Long robotId);
	
}
